package source;

/**
 * This class is strictly used as a container to hold information about an entity
 * that needs to be passed to another object.
 * 
 * @author Sean Larson
 *
 */
public class Stats {
	private int 	oDamage,
					dDamage,
					armor,
					health,
					upkeep,
					viewDistance,
					movementRate;
	private Tile	position;
	private PlayerStatus player;
	private String 	picture;
	
	public Tile position() {
		return this.position;
	}
	
	public void setPosition(Tile position) {
		this.position = position;
	}
		
	public Stats() {}
	
	public Stats(UnitType u, PlayerStatus player, Tile position) {
		this.armor = u.armor();
		this.dDamage = u.dDamage();
		this.oDamage = u.oDamage();
		this.health = u.health();
		this.movementRate = u.move();
		this.viewDistance = u.view();
		this.upkeep = u.upkeep();
		this.player = player;
		this.position = position;
		this.picture = u.picture();
	}
	
	public Stats(StructureType s, PlayerStatus player, Tile position) {
		this.armor = s.armor();
		this.oDamage = s.oDamage();
		this.dDamage = s.dDamage();
		this.health = s.health();
		this.viewDistance = s.view();
		this.upkeep = s.upkeep();
		this.player = player;
		this.position = position;
		this.picture = s.picture();
	}
	
	public int oDamage()			{	return this.oDamage;				}
	public void setODamage(int o)	{	this.oDamage = o;					}
	public int dDamage()			{	return this.dDamage;				}
	public void setDDamage(int d)	{	this.dDamage = d;					}
	public int armor()				{	return this.armor;					}
	public void setArmor(int a)		{	this.armor = a;						}
	public int health()				{	return this.health;					}
	public void setHealth(int h)	{	this.health = h;					}
	public int upkeep()				{	return this.upkeep;					}
	public void setUpkeep(int u)	{	this.upkeep = u;					}
	public int viewDistance()		{	return this.viewDistance;			}
	public void setViewDistance(int v)
									{	this.viewDistance = v;				}
	public int movementRate()		{	return this.movementRate;			}
	public void setMovementRate(int m)
									{	this.movementRate = m;				}
	public PlayerStatus player()	{	return this.player;					}
	public void setPlayer(PlayerStatus player)
									{	this.player = player;				}
	public String picture()			{	return this.picture;				}
	public void setPicture(String picture)
									{	this.picture = picture;				}
}
